<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var Car = function(){};
    Car.prototype.hello = function(){
        alert("hello car");
    };
    var car = new Car();
    car.f = function() {
        alert("自定义方法");
    }
    document.write("<pre>");
    document.writeln("car.hasOwnProperty(\"f\")的结果是："+car.hasOwnProperty("f"));//ture，car对象有f方法
    document.writeln("car.propertyIsEnumerable(\"f\")的结果是："+car.propertyIsEnumerable("f"));//ture，car对象有f方法，f方法是可以被枚举的
    document.writeln("car.hasOwnProperty(\"hello\")"+car.hasOwnProperty("hello")); // false，因为car本身没有hello方法
    document.writeln("car.propertyIsEnumerable(\"hello\")的结果是："+car.propertyIsEnumerable("hello"));   // false，没有这个方法当然不能枚举
    document.writeln("car.constructor.prototype.hasOwnProperty(\"hello\")的结果是："+car.constructor.prototype.hasOwnProperty("hello"));// true，car的类Car的原型有hello方法
    document.writeln("car.constructor.prototype.propertyIsEnumerable(\"hello\")的结果是："+car.constructor.prototype.propertyIsEnumerable("hello"));// true, car的类的Car的原型hello方法是可以被枚举的
    document.writeln("Car.prototype.hasOwnProperty(\"hello\")的结果是："+Car.prototype.hasOwnProperty("hello"));// true，car的类Car的原型有hello方法
    document.writeln("Car.prototype.propertyIsEnumerable(\"hello\")的结果是："+Car.prototype.propertyIsEnumerable("hello"));
    document.write("</pre>");

    /**
     * car.hasOwnProperty（“ f”）的结果是：true
     car.propertyIsEnumerable（“ f”）的结果是：true
     car.hasOwnProperty（“ hello”）false
     car.propertyIsEnumerable（“ hello”）的结果是：false
     car.constructor.prototype.hasOwnProperty（“ hello”）的结果是：true
     car.constructor.prototype.propertyIsEnumerable（“ hello”）的结果是：true
     Car.prototype.hasOwnProperty（“ hello”）的结果是：true
     Car.prototype.propertyIsEnumerable（“ hello”）的结果是：true
     * */
</script>
</body>
</html>